/**
 * 
 */
package mx.gob.inp.presupuesto.productos.bean;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import javax.faces.component.UIData;

import mx.gob.inp.presupuesto.entities.ColoresEntity;
import mx.gob.inp.presupuesto.entities.TallaEntity;
import mx.gob.inp.presupuesto.productos.dto.ProductosDTO;
import mx.gob.inp.presupuesto.productos.service.ProductosService;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

/**
 * @author 043h68
 *
 */
public class ProductosBean {

	/**
	 * 
	 */
	public ProductosBean() {

	}
	
	private String codigo; 
	private String talla; 
	private String color; 
	private double precioCompra; 
	private double precioVenta; 
	private int idProducto;
	
	private String nombre = "Danielito";		
	private ProductosService productosService;
	HashMap<String, Integer> mapaColores;
	private List<ProductosDTO> listaProductos = new ArrayList<ProductosDTO>();
	private List<ColoresEntity> listaColores = new ArrayList<ColoresEntity>();
	private List<TallaEntity> listaTallas = new ArrayList<TallaEntity>();
	private List<String> listaStrColores = new ArrayList<String>();
	private UIData dataTable;	
	private Integer scrollerPage;
	
			
	public void registroProducto(){
		
		System.out.println("registro de producto, codigo : " + codigo);
		System.out.println("registro de producto, precio compra : " + precioCompra);
		System.out.println("registro de producto, precio compra : " + precioVenta);
		
		productosService.registrarProducto(codigo, precioCompra, precioVenta, mapaColores.get(color).toString() , "1");
		
	}
	
	public void eliminarProducto(){
		
		productosService.eliminarProducto(idProducto);
	}
	
	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}


	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	
	/**
	 * @return the listaProductos
	 */
	public List<ProductosDTO> getListaProductos() {
		
		listaProductos = productosService.traerProductos();
		
		return listaProductos;
	}

	/**
	 * @param listaProductos the listaProductos to set
	 */
	public void setListaProductos(List<ProductosDTO> listaProductos) {
		this.listaProductos = listaProductos;
	}


	/**
	 * @return the dataTable
	 */
	public UIData getDataTable() {
		return dataTable;
	}


	/**
	 * @param dataTable the dataTable to set
	 */
	public void setDataTable(UIData dataTable) {
		this.dataTable = dataTable;
	}


	/**
	 * @return the scrollerPage
	 */
	public Integer getScrollerPage() {
		return scrollerPage;
	}


	/**
	 * @param scrollerPage the scrollerPage to set
	 */
	public void setScrollerPage(Integer scrollerPage) {
		this.scrollerPage = scrollerPage;
	}

	/**
	 * @return the codigo
	 */
	public String getCodigo() {
		return codigo;
	}

	/**
	 * @param codigo the codigo to set
	 */
	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	/**
	 * @return the talla
	 */
	public String getTalla() {
		return talla;
	}

	/**
	 * @param talla the talla to set
	 */
	public void setTalla(String talla) {
		this.talla = talla;
	}

	/**
	 * @return the color
	 */
	public String getColor() {
		return color;
	}

	/**
	 * @param color the color to set
	 */
	public void setColor(String color) {
		this.color = color;
	}

	/**
	 * @return the precioCompra
	 */
	public double getPrecioCompra() {
		return precioCompra;
	}

	/**
	 * @param precioCompra the precioCompra to set
	 */
	public void setPrecioCompra(double precioCompra) {
		this.precioCompra = precioCompra;
	}

	/**
	 * @return the precioVenta
	 */
	public double getPrecioVenta() {
		return precioVenta;
	}

	/**
	 * @param precioVenta the precioVenta to set
	 */
	public void setPrecioVenta(double precioVenta) {
		this.precioVenta = precioVenta;
	}

	/**
	 * @return the productosService
	 */
	public ProductosService getProductosService() {
		return productosService;
	}

	/**
	 * @param productosService the productosService to set
	 */
	@Autowired
	@Qualifier("productosService")
	public void setProductosService(ProductosService productosService) {
		this.productosService = productosService;
	}

	/**
	 * @return the listaColores
	 */
	public List<ColoresEntity> getListaColores() {
		
		
		return listaColores;
	}

	/**
	 * @param listaColores the listaColores to set
	 */
	public void setListaColores(List<ColoresEntity> listaColores) {
		this.listaColores = listaColores;
	}

	/**
	 * @return the listaTallas
	 */
	public List<TallaEntity> getListaTallas() {
		return listaTallas;
	}

	/**
	 * @param listaTallas the listaTallas to set
	 */
	public void setListaTallas(List<TallaEntity> listaTallas) {
		this.listaTallas = listaTallas;
	}

	/**
	 * @return the listaStrColores
	 */
	public List<String> getListaStrColores() {
		
		listaColores = productosService.traerColores();
		System.out.println("colores : " + listaColores.size());
		mapaColores = new HashMap<String, Integer>();
		
		for(ColoresEntity color : listaColores){
			
			
			listaStrColores.add(color.getDescripcion());
			mapaColores.put(color.getDescripcion(), color.getIdColor());
		}
		System.out.println("colores string : " + listaStrColores.size());
		
		return listaStrColores;
	}

	/**
	 * @param listaStrColores the listaStrColores to set
	 */
	public void setListaStrColores(List<String> listaStrColores) {
		
		this.listaStrColores = listaStrColores;
	}

	/**
	 * @return the idProducto
	 */
	public int getIdProducto() {
		return idProducto;
	}

	/**
	 * @param idProducto the idProducto to set
	 */
	public void setIdProducto(int idProducto) {
		this.idProducto = idProducto;
	}

	
	
}
